#include "Punto.h"
#include "Figura.h"
#include "Cuadrado.h"
#include "Circulo.h"
#include "operaciones.h"
#include <iostream>
#include <string>
#include <math.h>


using namespace std;

int main ()
{
    int opcion=0, Auxcir=0, Auxcua=0, i=0;
    string figura;
    double aux=0.0;
    Circulo circ;
    Cuadrado cuad;
    Punto a;


    do{
        cout<<"Elige una figura: circulo o cuadrado"<<endl;
        cin>>figura;
        if (figura == "circulo"){
            cout<<"As elegido un circulo"<<endl;
    }
        else
            if (figura == "cuadrado"){
                 cout<<"As elegido un cuadrado"<<endl;
        }
            else
                cout<<"Opción invalida."<<endl;
    }
    while((figura != "circulo") && (figura != "cuadrado"));


    do
    {
        cout<<"elige una opcion de las mostradas a continuacion"<<endl;
        cout<<"1: Elegir figura"<<endl;
        cout<<"2: Mover figura"<<endl;
        cout<<"3: Redimensionar area"<<endl;
        cout<<"4: Cambiar color de la figura"<<endl;
        cout<<"5: Ver posicion de la figura"<<endl;
        cout<<"6: Ver area de la figura"<<endl;
        cout<<"7: Ver perimetro de la figura"<<endl;
    cout<<"8: Ver color de la figura"<<endl;
        cout<<"9: Salir del Programa"<<endl;
        cin>>opcion;
        switch (opcion)
        {
        case 1:
            do{
                    cout<<"Elige una figura: circulo o cuadrado"<<endl;
                    cin>>figura;
                        if (figura == "circulo"){
                                cout<<"As elegido un circulo"<<endl;
                    }
                        else
                                if (figura == "cuadrado"){
                                    cout<<"As elegido un cuadrado"<<endl;
                            }
                                else
                                    cout<<"Opción invalida."<<endl;
                }
            while((figura != "circulo") && (figura != "cuadrado"));
        break;
            case 2:
                    if (figura == "cuadrado"){
                            cuad.setCentro();
                    }
                    else
                            circ.setCentro();
                break;
            case 3:
                    if (figura == "cuadrado"){
                        aux=0.0;
                        cout<<"introduce el nuevo valor del lado del cuadrado"<<endl;
                        cin>>aux;
                        cuad.setLado(aux);
                        cuad.calcularArea();
                        cuad.calcularPerimetro();
                    }
                    else
                        aux=0.0;
                        cout<<"introduce el nuevo valor del radio del circulo"<<endl;
                        cin>>aux;
                        circ.setRadio(aux);
                        circ.calcularArea();
                        circ.calcularPerimetro();
                break;
            case 4:
                    if (figura == "cuadrado"){
                        do
                        {
                            i=0;
                            cout<<"Selecciona el color del cuadrado 1.Negro 2.Blanco 3.Rojo 4.Azul"<<endl;
                            cin>>Auxcua;
                            if (Auxcua!=1 && Auxcua!=2 && Auxcua!=3 && Auxcua!=4){
                                cout<<"Por favor elige una opcion de las posibles"<<endl;
                            i=1;}
                            else
                                cuad.setColor(Auxcua);
                        }while(i!=0);
                    }
                    else
                         do
                         {
                            i=0;
                            cout<<"Selecciona el color del circulo 1.Negro 2.Blanco 3.Rojo 4.Azul"<<endl;
                            cin>>Auxcir;
                            if (Auxcir!=1 && Auxcir!=2 && Auxcir!=3 && Auxcir!=4){
                                cout<<"Por favor elige una opcion de las posibles"<<endl;
                                i=1;
                            }
                            else
                                circ.setColor(Auxcir);
                          }while(i!=0);
                break;
            case 5:
                    if (figura == "cuadrado"){
                        cuad.getCentro();
                    }
                    else
                        circ.getCentro();

                break;
            case 6:
            if (figura == "cuadrado"){
                aux=cuad.getArea();
                cout<<"El area del cuadrado es: "<<aux<<endl;
            }
            else
                aux=circ.getArea();
                cout<<"El area del circulo es: "<<aux<<endl;
                break;
            case 7:
            if (figura == "cuadrado"){
                aux=cuad.getPerimetro();
                cout<<"El perimetro del cuadrado es: "<<aux<<endl;
            }
            else
                aux=circ.getPerimetro();
                cout<<" El perimetro del circulo es: "<<aux<<endl;
                break;
        case 8:
            if (figura == "cuadrado"){
                Auxcua=cuad.getColor();
                switch (Auxcua)
                {
                    case 1:
                        cout<<"Tu cuadrado es de color Negro"<<endl;
                    break;
                    case 2:
                        cout<<"Tu cuadrado es de color Blanco"<<endl;
                    break;
                    case 3:
                        cout<<"Tu cuadrado es de color Rojo"<<endl;
                    break;
                    case 4:
                        cout<<"Tu cuadrado es de color Azul"<<endl;
                    break;
                    default:
                        cout<<"El color de tu cuadrado es el de fábrica"<<endl;
                }
            }
            else
            {   Auxcir=circ.getColor();
                switch (Auxcir)
                {
                    case 1:
                        cout<<"Tu circulo es de color Negro"<<endl;
                    break;
                    case 2:
                        cout<<"Tu circulo es de color Blanco"<<endl;
                    break;
                    case 3:
                        cout<<"Tu circulo es de color Rojo"<<endl;
                    break;
                    case 4:
                        cout<<"Tu circulo es de color Azul"<<endl;
                    break;
                    default:
                        cout<<"El color de tu circulo es el de fábrica"<<endl;
                }
	   }
        break;
            case 9:
                    cout<<"gracias por utilizar este programa"<<endl;
        break;
            default:
                    cout<<"Por favor elige una opcion del menu"<<endl;
        }
    }while (opcion!=9);
}

